<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    const arr = [1, 2, 3];

    // 只拦截 length 属性
    Object.defineProperty(arr, 'length', {
        get() {
            console.log('读取 length');
            return this._length || 0;
        },
        set(value) {
            console.log('设置 length 为:', value);
            this._length = value;
        }
    });
    arr[1] = 'new item1111';
    console.log(arr);
    // 无法拦截数组索引的新增
    arr[3] = 'new item';  // 不会触发拦截
    console.log(arr[3]);  // 输出: new item (不会触发拦截)

    // 无法拦截通过 push 等方法新增的元素
    arr.push('another item'); // 不会触发拦截

</script>
</body>
</html>
